<html lang="zh">
<h2>关于</h2>

Bytecode Viewer (BCV)被设计成对用户和初学者非常友好，因此，几乎所有的东西都可以通过界面、设置、工具等方式进行访问。

<br><br>将Jar/APK/Class文件拖到资源列表中。

<h2>设置</h2>
<ul>
    <li>Fat Jar: {fatJar}</li>
    <li>Java: {java}</li>
    <li>Javac: {javac}</li>
    <li>BCV 目录: {bcvDir}</li>
    <li>Python 2.7 (or PyPy): {python}</li>
    <li>Python 3.X (or PyPy): {python3}</li>
    <li>RT.jar: {rt}</li>
    <li>可选库: {lib}</li>
    <li>BCV Krakatau: {krakatauVersion}</li>
    <li>Krakatau 目录: {krakatauDir}</li>
    <li>BCV Enjarify: {enjarifyVersion}</li>
    <li>Enjarify 目录: {enjarifyDir}</li>
</ul>

<h2>命令行界面 (CLI)</h2>
<ul>
    <li> -帮助 显示帮助菜单</li>
    <li> -列表显示可用的反编译程序</li>
    <li> -反编译 [decompiler]选择反编译器，默认为procyon</li>
    <li> -i [input file] 选择输入文件 (Jar, Class, APK, ZIP, DEX all work automatically)</li>
    <li> -o [output file] 选择输出文件 (Java or Java-Bytecode)</li>
    <li> -t [target classname] 必须是完全合格的类名，或者是 "all "来反编译所有的zip</li>
    <li> -nowait 不要等待用户阅读命令行界面消息</li>
</ul>

<h2>文件</h2>
<ul>
    <li>Add (Ctrl + O) - I如果你添加了一个jar/zip，BCV将解压它，如果你添加了一个APK或DEX文件，BCV将运行dex2jar，然后运行jar输入进程。
    </li>
    <li>重新打开最近的文件(Ctrl + L) -重新打开最近打开的文件。</li>
    <li>新工作区域(Ctrl + N) -它清除打开的罐子/资源。</li>
    <li>运行(Ctrl + R) -在一个安全的沙盒JVM实例中运行您已经加载到BCV的类文件，您可以完全调试该实例。</li>
    <li>编译(Ctrl + T) -尝试编译您选择的所有可编辑面板，如果是Java，它将使用Ranino编译。Krakatau和*Smali使用自己的装配工。
    </li>
    <li>另存为Jar - 将类文件和加载的资源导出为可运行的Jar文件。</li>
    <li>另存为DEX - 运行jar2dex并将类文件导出为dex。</li>
    <li>将文件另存为 - 将所有的类文件和资源保存为zip文件。</li>
    <li>将 Java 文件另存为- 保存当前打开的反编译类文件。</li>
    <li>将 Java 文件另存为zip - 将所有反编译的类文件保存为zip文件。</li>
    <li>最近打开的文件 - 你在BCV打开的最后25个文件/目录。</li>
    <li>关于 - 一个关于BCV的小信息窗口。</li>
    <li>退出 - 关闭BCV。</li>
</ul>

<h2>视图面板</h2>
<ul>
    <li>Editable - 预定义视图面板是否可编辑。</li>
    <li>无 - 不会显示任何内容。</li>
    <li>Procyon - 使用Procyon反编译程序反编译。</li>
    <li>CFR - 使用CFR反编译程序反编译。</li>
    <li>FernFlower - 使用FernFlower反编译程序反编译。</li>
    <li>JD-GUI - 使用JD-GUI反编译程序反编译.</li>
    <li>Krakatau Java - 用Krakatau反编译程序反编译。</li>
    <li>Krakatau Bytecode - 用Krakatau反汇编程序反汇编.</li>
    <li>Smali - 用 Smali反汇编</li>
    <li>字节码 - 通过CFIDE反编译字节码。不可编辑。</li>
    <li>十六进制代码 - 在十六进制查看器中显示类文件。不可编辑。</li>
</ul>

<h2>设置</h2>
<ul>
    <li>编译在保存 —— 如果您在执行File>Save *函数时被选中，它将在保存之前尝试编译。</li>
    <li>编译在刷新 —— 如果在按下refresh时选中，则在重新加载资源/类之前编译。</li>
    <li>检查更新 ——如果您选择了它，请查询https://github.com/Konloch/bytecode-viewer以确保您获得了最新的的版本。</li>
    <li>视图更改时刷新 —— 如果您在视图窗格中更改一个选项时选中，它将刷新当前打开的资源/类。</li>
    <li>解码的APK资源 —— 如果在添加APK时选中，它将首先运行APKTool.jar来解码资源。</li>
    <li>设置Python 2.7可执行文件 —— 如果你想要Krakatau反编译器/反汇编器/汇编器，请设置Python 2.7可执行文件去工作。</li>
    <li>设置JRE RT库 —— 设置Krakatau反编译器的JRE RT库。</li>
</ul>

<h2>插件</h2>
<ul>
    <li>打开插件 —— 打开为BCV创建的.java插件。</li>
    <li>最近的插件 —— 你用BCV打开的最后25个插件。</li>
    <li>代码程序表 —— 为当前打开的类文件构建一个原始的代码序列图。</li>
    <li>恶意代码扫描 —— 允许您定义要搜索的内容，并输出找到的内容。</li>
    <li>显示主要方法 —— 检测并输出所有的public static void main(String[])函数。</li>
    <li>显示所有字符串 —— 抓取然后输出每个类文件中的所有字符串。</li>
    <li>替换字符串 —— 允许您对类文件字符串执行简单的永久.replace操作，这对URL交换非常有用。</li>
    <li>Allatori 字符串解码器 —— 解密Allatori混淆/加密字符串。</li>
    <li>ZKM 字符串解码器 —— 解密ZKM混淆/加密字符串。</li>
    <li>ZStringArray字符串解码器 —— 解密ZStringArray混淆/加密字符串。</li>
</ul>

<h2>已使用来自不同项目的代码，包括但不限于</h2>
<ul>
    <li>J-RET作者WaterWolf</li>
    <li>JHexPane作者Sam Koivu</li>
    <li>RSynaxPane作者Robert Futrell</li>
    <li>Commons IO作者Apache</li>
    <li>ASM作者OW2</li>
    <li>FernFlower作者Stiver</li>
    <li>Procyon作者Mstrobel</li>
    <li>CFR作者Lee Benfield</li>
    <li>CFIDE作者 Bibl</li>
    <li>Smali作者JesusFreke</li>
    <li>Dex2Jar作者pxb1988</li>
    <li>Krakatau作者Storyyeller</li>
    <li>JJava-Decompiler团队的JD-GUI + JD-Core</li>
    <li>用Storyyeller的话来形容</li>
</ul>

<h2>笔记</h2>
<ul>
    <li>如果BCV无法启动，只需将-clean作为参数附加到lib目录中即可。</li>
    <li>放松并记笔记</li>
    <li>BCV是出于对Java逆向工程的热爱而创建的。</li>
    <li>你可以加入我们的Discord服务器 <a href="https://discord.gg/aexsYpfMEf">https://discord.gg/aexsYpfMEf</a>!</li>
    <li>Bytecode Viewer的主页是 <a href="https://bytecodeviewer.com">https://bytecodeviewer.com</a></li>
</ul>

</html>
